using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
namespace ServiceStack
{
	public abstract class QueryBase : IQuery, IMeta
	{
		[DataMember(Order = 1)]
		public virtual int? Skip
		{
			get;
			set;
		}
		[DataMember(Order = 2)]
		public virtual int? Take
		{
			get;
			set;
		}
		[DataMember(Order = 3)]
		public virtual string OrderBy
		{
			get;
			set;
		}
		[DataMember(Order = 4)]
		public virtual string OrderByDesc
		{
			get;
			set;
		}
		[DataMember(Order = 5)]
		public virtual string Include
		{
			get;
			set;
		}
		[DataMember(Order = 6)]
		public virtual Dictionary<string, string> Meta
		{
			get;
			set;
		}
	}
	public abstract class QueryBase<T> : QueryBase, IQuery<T>, IQuery, IMeta, IReturn<QueryResponse<T>>, IReturn
	{
	}
	public abstract class QueryBase<From, Into> : QueryBase, IQuery<From, Into>, IQuery, IMeta, IReturn<QueryResponse<Into>>, IReturn
	{
	}
}
